In recent years, electronic data processing has been used more and more for commercial activities between two or more parties. As an example, many companies and people use Web services to order or purchase products through the Internet. In an example case, a company may have a computer system that provides an order system, that is, a computer program for ordering products. The order system may provide a user interface so that an employee of the company can enter data required for ordering the products. The order system may be configured so that it can invoke a Web service of a supplier using the entered data. For this, the order system may, for example, add further data and invoke the Web service with the entered data and the further data in a specific format. The Web service may then trigger a process for providing the ordered products.
In a service-oriented architecture, processes are modelled with services as modular processing units. The services may be Web services or further services. The services are described by a specification and can be invoked according to the specification. Therefore, the services can be used in a flexible way by different requesters and independently of the internal processing of data.
Furthermore, a requester of a service and a provider of the service may negotiate a contract. The contract may specify certain properties of the service and an agreement, for example a price that is effective when the service is requested according to the certain properties.
The requester of a service may have access to a plurality of available services that potentially fulfill a service request and that may be subject to contracts. In such a case, the requester may, for example, invoke all services that potentially fulfill the service request and analyze results provided by the services to select a service for fulfilling the service request. This may involve processing and transferring of many data, so that a lot of computer resources and connection resources are consumed. Furthermore, it may be required to specify more data for invoking the services that potentially fulfill the service request than to select the service for fulfilling the service request.
A semantic web has been suggested to discover services in e-commerce. A semantic web includes a description of data so that the data can be read and understood by computer systems. The data may be described using an ontology. Generally, the ontology is a conceptual schema for defining relevant entities of a set of data, relationships between the entities, and rules for the entities. Therefore, the ontology defines the contents of the data. The ontology is complete, that is, relevant entities, relationships and rules are included in the ontology. The ontology of a domain may be a domain-specific ontology that is valid for the domain. The ontology may be accessible by a computer program and enable the computer program to infer properties or property values for an entity of the ontology according to the ontology. The services may be described by using a web services description language (WSDL). In a semantic web, a service may be matched to a service request in a flexible way, because matching may be possible even if the specifications of the service and the service request are different. The specifications may be different, for example, due to a different level of description, that is, the specification of the service request may be more detailed than the specification of the service. The service request may be matched with a service without transforming, for example, the service request to the specification of the service to compare the specifications on the same level. However, for selecting the service the plurality of services are described by an identical ontology and the potentially suitable services may have to be invoked.